/*
 * Copyright (c) 2024 Huawei Device Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (theLicense");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *      http://www.apache.org/licenses/LICENSE-20
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#include "NativeNodeApi.h"
#include <glog/logging.h>

namespace rnoh {

ArkUI_NativeNodeAPI_1* NativeNodeApi::getInstance()
{
    #ifdef C_API_ARCH
        static ArkUI_NativeNodeAPI_1* INSTANCE = nullptr;
            if (INSTANCE == nullptr) {
                OH_ArkUI_GetModuleInterface(
                    ARKUI_NATIVE_NODE, ArkUI_NativeNodeAPI_1, INSTANCE);
                if (INSTANCE == nullptr) {
                    DLOG(FATAL) << "Failed to get native node API instance.";
                }
            }
        return INSTANCE;
    #endif
}

} // namespace rnoh